package com.ihr360.cnb.module.insurance.service;

import com.ihr360.commons.vo.PageData;
import com.ihr360.insurance.entity.request.MemberPlanReq;
import com.ihr360.insurance.entity.vo.MemberPlanVo;

import javax.servlet.ServletOutputStream;

/**
 * @author Stone.Shi
 * @description
 * @date 2018-05-24 18:03:15.
 */
public interface MemberPlanAggregateService {

    /**
     * 获取增员数据
     *
     * @param companyId
     * @param userId
     * @param req
     * @return
     */
    PageData<MemberPlanVo> getIncreaseMember(String companyId, String userId, MemberPlanReq req);

    /**
     * @param companyId
     * @param userId
     * @param ledgerSummaryId
     */
    void saveIncreaseMemberRecords(String companyId, String userId, Long ledgerSummaryId);

    /**
     * @param companyId
     * @param userId
     * @param req
     * @param outputStream
     */
    void exportExcelIncreaseMember(String companyId, String userId, MemberPlanReq req, ServletOutputStream outputStream);

    /**
     * @param companyId
     * @param userId
     * @param req
     * @return
     */
    PageData<MemberPlanVo> getDecreaseMember(String companyId, String userId, MemberPlanReq req);

    /**
     * @param companyId
     * @param userId
     * @param ledgerSummaryId
     */
    void saveDecreaseMemberRecords(String companyId, String userId, Long ledgerSummaryId);

    /**
     * @param companyId
     * @param userId
     * @param req
     * @param outputStream
     */
    void exportExcelDecreaseMember(String companyId, String userId, MemberPlanReq req, ServletOutputStream outputStream);

}
